package com.syedu.day08.v2;

/**
 * @Description 业务类
 * @createTime 2022/3/18 9:32
 * @author Administrator
 */
public class VehicleService {
    /**
     * 以下三个方法构成了方法重载
     * 在同一个类中,方法名相同,参数列表不同的机制,它可以通过一个相同名字的统一方法来执行不同参数的功能,
     * 从而简化设计
     *
     * 构成重载的条件
     * 前提条件--必须发生在同一个类中
     *
     * 要求:方法名必须相同,参数列表必须不同(参数的个数,类型,顺序...),返回类型没有限制
     */
    /*public void goWork(Car car) {
        System.out.println("开" + car.getBrand() + car.getType() + "车上班...");
    }

    public void goWork(Bike bike) {
        System.out.println("骑" + bike.getBrand() + bike.getType() + "自行车上班...");
    }

    public void goWork(Plane plane) {
        System.out.println("坐" + plane.getBrand() + plane.getType() + "飞机上班...");
    }*/

    /**
     * 多态应用之方法参数列表写成父类
     * 优点: 可以在设计时合并多个子类参数的方法,并且后期具有拓展性
     */
    public void goWork(Vehicle vehicle){
        /*if(vehicle instanceof Car){
            System.out.println("开" + vehicle.getBrand() + vehicle.getType() + "车上班...");
        }else if(vehicle instanceof Bike){
            System.out.println("骑" + vehicle.getBrand() + vehicle.getType() + "自行车上班...");
        }else if(vehicle instanceof Plane){
            System.out.println("坐" + vehicle.getBrand() + vehicle.getType() + "飞机上班...");
        }else if(vehicle instanceof MotoBike){
            System.out.println("骑" + vehicle.getBrand() + vehicle.getType() + "摩托车上班...");
        }*/

        vehicle.move();
    }
}
